// File: jmcomic-core/src/main/java/dev/jukomu/jmcomic/exception/PartialDownloadFailedException.java
package dev.jukomu.jmcomic.exception;

import java.util.Map;

/**
 * 对应Python的PartialDownloadFailedException，表示部分章节或图片下载失败。
 */
public class PartialDownloadFailedException extends JmcomicException {
    public static final String DESCRIPTION = "部分章节或图片下载失败异常";

    public PartialDownloadFailedException(String message, Map<String, Object> context) {
        super(message, context);
    }

    public PartialDownloadFailedException(String message, Map<String, Object> context, Throwable cause) {
        super(message, context, cause);
    }

    /**
     * 获取下载器实例。
     *
     * @param <T> 下载器类型
     * @return 下载器实例
     */
    @SuppressWarnings("unchecked")
    public <T> T getDownloader() {
        // 这里的downloader类型将是JmDownloader
        return fromContext(ExceptionUtils.CONTEXT_KEY_DOWNLOADER);
    }
}